package com.ktgj.other.service;

import java.util.List;

import com.ktgj.other.domain.*;
import com.ktgj.other.domain.common.DayPriceRequest;
import com.ktgj.other.domain.vo.RcOrderVO;

import javax.servlet.http.HttpServletRequest;

/**
 * 专车订单Service接口
 * 
 * @author ruoyi
 * @date 2022-07-27
 */
public interface IRcOrderService 
{
    /**
     * 查询专车订单
     * 
     * @param rcorderid 专车订单ID
     * @return 专车订单
     */
    public RcOrder selectRcOrderById(Long rcorderid);

    /**
     * 查询专车订单列表
     * 
     * @param rcOrder 专车订单
     * @return 专车订单集合
     */
    public List<RcOrder> selectRcOrderList(RcOrder rcOrder);

    /**
     * 专车订单列表
     * @param rcOrder
     * @return
     */
    public List<RcOrder> queryRcOrderList(RcOrder rcOrder);

    /**
     * 新增专车订单
     * 
     * @param rcOrder 专车订单
     * @return 结果
     */
    public int insertRcOrder(RcOrder rcOrder);

    /**
     * 修改专车订单
     * 
     * @param rcOrder 专车订单
     * @return 结果
     */
    public int updateRcOrder(RcOrder rcOrder);

    /**
     * 批量删除专车订单
     * 
     * @param rcorderids 需要删除的专车订单ID
     * @return 结果
     */
    public int deleteRcOrderByIds(Long[] rcorderids);

    /**
     * 删除专车订单信息
     * 
     * @param rcorderid 专车订单ID
     * @return 结果
     */
    public int deleteRcOrderById(Long rcorderid);

    /**
     * 查询专车订单
     * @param orderid
     * @return
     */
    public RcOrder queryRcOrderByOrderid(Long orderid);

    /**
     * 订单填写
     * @param token
     * @param request
     * @return
     */
    public RcFillOrder fillOrder(String token, DayPriceRequest request) throws Exception;

    /**
     * 创建订单
     * @param token
     * @param rcOrder
     * @return
     */
    public String createOrder(String token, RcOrder rcOrder) throws Exception;

    /**
     * 订单收银台
     * @param token
     * @param orderId
     * @return
     */
    public Cashier cashier(String token, String orderId);

    /**
     * 专车订单列表
     * @param orderstatus
     * @param token
     * @return
     */
    public List<RcOrderList> rcOrderList(String token, Long orderstatus) throws Exception;

    /**
     * 订单详情-用车信息
     * @param orderid
     * @return
     */
    public RcOrderCarInformation carInformation(String orderid);

    /**
     * 专车银行卡支付
     * @param bankCardPay
     * @return
     */
    public String bankCardPay(RcOrderBankCardPay bankCardPay, HttpServletRequest servletRequest) throws Exception;

    /**
     * 专车订单详情
     * @param orderid
     * @return
     */
    public RcOrderVO rcOrderDetail(String orderid);
}
